草庐IT

【FFmpeg+Qt开发】Windows下 环境搭建 详细步骤

目录一、下载ffmpeg:😄ffmpeg的组成:1.第一部分:是四个作用不同的工具软件2.第二部分:是可以供开发者使用的SDK,为各个不同平台编译完成的库文件3.第三部分:是整个工程的源代码无论是编译出来的可执行程序还是SDK,都是由这些源代码编译出来的二、在Qt中引入ffmpeg:1.第一步:将ffmpeg文件拷贝到qt工程目录下2.第二步:打开qtpro文件进行设置3.第三步:测试FFmpeg库是否能正常使用一、下载ffmpeg:1.官方下载链接:DownloadFFmpeg2.博主资源下载:FFmpeg相关库文件用于与FFmpeg相关内容的开发主要包括:记录、转换数字音频、视频,并能将其

Qt实现改变无标题栏窗体大小及移动窗体

1.问题的提出一般情况下,当去掉窗体标题栏时,按住鼠标左键就无法实现拖动窗体;当去掉窗体标题栏时,窗体四周的边框也去掉了,此时按住鼠标左键拖动窗体四周边沿,无法实现鼠标拖动改变窗体大小。如下为Qt实现去掉窗体标题栏的代码: setWindowFlag(Qt::FramelessWindowHint);//去掉标题栏现在的问题是:在去掉窗体标题栏的情况下,如何按住鼠标左键,实现鼠标拖动改变窗体大小?在去掉窗体标题栏的情况下,如何在窗体上按住鼠标左键,实现移动窗体?2.实现方法Qt中有个QSizeGrip类,可以很好解决1节提到的问题,关于该类的具体用法,参见QtAssistant。下面直接上代码

QT-FFMPEG录制屏幕和声音的完整程序(包含音视频同步)

整体框架:屏幕录制、声音录制、音视频合成分别在不同的子线程中运行,由主程序控制录制的开始和结束。控制流程如下图所示:主线程:点击开始按钮à打开音频设备、视频设备、输出文件、启动子线程à发送开始录制信号;子线程:收到开始信号à开始录制;主线程:点击结束按钮à发送结束信号;子线程:接收到结束信号à发送结束信号;主线程:已经接收到了所有子线程发来的结束信号à处理结束事项并清理资源。主要代码:主线程:screenrecord.h/***录屏主控类*/#ifndefSCREENRECORD_H#defineSCREENRECORD_H/**QTheader**/#include#include#incl

QT-FFMPEG录制屏幕和声音的完整程序(包含音视频同步)

整体框架:屏幕录制、声音录制、音视频合成分别在不同的子线程中运行,由主程序控制录制的开始和结束。控制流程如下图所示:主线程:点击开始按钮à打开音频设备、视频设备、输出文件、启动子线程à发送开始录制信号;子线程:收到开始信号à开始录制;主线程:点击结束按钮à发送结束信号;子线程:接收到结束信号à发送结束信号;主线程:已经接收到了所有子线程发来的结束信号à处理结束事项并清理资源。主要代码:主线程:screenrecord.h/***录屏主控类*/#ifndefSCREENRECORD_H#defineSCREENRECORD_H/**QTheader**/#include#include#incl

Qt鼠标事件

新建桌面应用程序testMouseEvent,类名MouseEvent,基类QMainWindow,通过重写鼠标事件达到跟踪鼠标位置的效果。添加2个标签做转态及位置更新用,重写鼠标事件:mouseevent.h#ifndefMOUSEEVENT_H#defineMOUSEEVENT_H#include#includenamespaceUi{classMouseEvent;}classMouseEvent:publicQMainWindow{Q_OBJECTpublic:explicitMouseEvent(QWidget*parent=nullptr);~MouseEvent();protec

Qt之QLCDNumber

文章目录一、QLCDNumber简介二、QLCDNumber属性示例获取系统时间示例代码提示:以下是本篇文章正文内容,下面案例可供参考一、QLCDNumber简介QLCDNumber控件用于显示一个LCD数字。它可以显示几乎任意大小的数字。可以显示十进制、十六进制、八进制或二进制数这些数字和其它符号可以显示:0/O、1、2、3、4、5/S、6、7、8、9/g、负号、小数点、A、B、C、D、E、F、h、H、L、o、P、r、u、U、Y、冒号、度数符号(字符串中被指定为单引号)和空格。QLCDNumber会将非法字符替代为空格获取QLCDNumber的内容是不可能的,虽然可以通过value()来获取

BBTools Shadow:360°真实阴影效果PS插件安装教程&使用方法

插件安装步骤:windows版本插件安装非常简单,仅需下载后: 1)关闭photoshop应用 2)把Shadow文件拷贝至以下路径C:\ProgramFiles\Adobe\AdobePhotoshopCC2022\Required\CEP\extensions(ps安装在其他盘自行匹配对应盘查找) 3)打开photoshop→窗口→扩展→BBToolsShadow,开始体验吧!插件使用BBToolsShadow是一款photoshop投影插件,轻松制作出各种物体的倒影,不管是文字、图层还是智能图层都可以直接添加倒影,非常真实。阴影太假?使用BBToolsShadow插件,一键生成360°全

QT学习之定时器

一、定时器第一种方式:1利用事件voidtimerEvent(QTimerEvent*ev)2启动定时器startTimer(1000)毫秒单位3timerEvent的返回值是定时器的唯一标示可以和ev->timerid做比较第二种方式:1利用定时器类QTimer2创建定时器对象QTimer*timer=newQTimer(this)3启动定时器timer->start(毫秒)4每隔一定毫秒,发送信号timeout,进行监听5暂停timer->stop.h文件#ifndefWIDGET_H#defineWIDGET_H#includenamespaceUi{classWidget;}class

Qt中C++代码搭配UI文件实现交互界面

系列文章目录第一章Qt中C++代码搭配UI文件实现交互界面文章目录一、关于Qt中的UI文件二、创建一个基本的Qt工程1.创建工程时,选择不生成ui文件2.工程内容3.构建并运行这个工程4.实现并添加UI文件三.使用这个新增的UI四.编译运行总结文章预告        前一段时间,被抽调到另一个测试项目,工作内容是,基于现有的一份Qt实现的工具代码,按照UI/UE设计做UI优化。做软件开发的同行都知道,我们最怕的是半路接手别人的项目代码,这些代码实际运行中可能很正常,但通常有一些毛病:没注释、命名不规范、逻辑混乱、没有设计文档等等。    看了这份工具的代码,我发现这个工作看起来不是那么容易。在

【QT】qt控件位置获取的正确姿势

【QT】qt控件位置获取的正确姿势目标:两个控件widgetA、widgetB,希望将widgetB移动至widgetA上方。UI层级关系为:widgetB的上一级父对象为顶层窗口类,而widgetA不直接继承顶层窗口类,中间隔了几层父对象思路:由于两个控件之间不存在直接的层级关系,需要先映射到全局坐标后作处理错误姿势://此处为窗口类作用域QPointposA=widgetA->mapToGlobal(widgetA->pos());QPointposB=this->mapFromGlobal(QPoint(posA.x(),posA.y()-widgetB->height()));widg